/*
 *
 *
 * File:   CMapa.h
 * Author: jimena2
 *
 * Created on 28 de mayo de 2011, 01:18 PM
 */



#ifndef CMAPA_H
#define	CMAPA_H
#include "../dataTypes/dataAdyacentes.h"
#include "../dataTypes/dataMapa.h"
#include "../interfacesCol/ICollection.h"
#include "../interfacesCol/IDictionary.h"
#include "../interfacesCol/IIterator.h"
#include "../headers/Mapa.h"
#include "../dataTypes/String.h"
#include "../dataTypes/claveString.h"
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include "CPartida.h"
#include "../dataTypes/dataAdyacentes.h"
class CMapa {
private:
    IDictionary* mapas;
    char* nomMapa;
    ICollection* territorios;//memoria, capaz puede ser un ICollection*
    dataAdyacentes*  dady;//ver si va puntero
    ICollection* adyacentes;//memoria, capaz puede ser un ICollection*
    static CMapa* instancia;
    CMapa();
public:
    static CMapa* getInstancia();
    //CMapa(const CMapa& orig);este no tiene sentido no?
    IDictionary* getMapas() const;
    char* getNomMapa() const;
    ICollection* getTerritorios() const;
    ICollection* getAdyacentes() const;
    dataAdyacentes* getDady() const;
    void ingresarNombreMapa(char*);
    void agregarTerritoriosMapa(char*);
    void agregarAdyacentes(char*, char*);
    void darAltaMapa();
    bool fueUtilizado(char*);
    void eliminarMapa();
    IDictionary* listarTerritorios();
    Mapa* buscarMapa(char*);//ver si es puntero...
    IDictionary* buscarTerritoriosDom(char*, char*);
    IDictionary* listarMapas();
    dataMapa* seleccionarMapa(char*);
    virtual ~CMapa();


};

#endif	/* CMAPA_H */

//cambie aca